﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

#pragma once
#include "GcmpLocatorCommands.h"

namespace gcmp
{
    class IActionLocatorBehavior;

    /// \brief 配置罗盘重定位 Action 的生成器 IActionCreator 的参数
    class GCMP_LOCATOR_COMMANDS_EXPORT ActionLocatorRepositionInput
    {
    public:
        /// \brief 构造函数
        /// \param opActionBehavior 罗盘重定位Action的Behavior，用于配置罗盘重定位操作行为
        /// \param bIsRepositionLocatorOnly     是否仅重定位罗盘
        ActionLocatorRepositionInput(OwnerPtr<gcmp::IActionLocatorBehavior> opActionBehavior , bool bIsRepositionLocatorOnly = false);
        
        /// \brief 析构函数
        ~ActionLocatorRepositionInput();

        /// \brief 获取罗盘重定位Action的Behavior
        /// \return 罗盘重定位Action的Behavior指针
        OwnerPtr<IActionLocatorBehavior> GetLocatorRepositionBehavior();

        /// \brief 是否仅重定位罗盘
        /// \return Y:true , N:false
        bool IsOnlyRepositionLocator()
        {
            return m_bIsRepositionLocatorOnly;
        }
    private:
        OwnerPtr<gcmp::IActionLocatorBehavior> m_opActionBehavior;
        bool m_bIsRepositionLocatorOnly;
    };
}


